I'm trying to see if I can create a unique ID for a computer based on the hardware and software that it runs. Here is some criteria I have come up with so far:

- MAC Address(es)
- CPUID info
- OS type, version

Basically, what I want to achieve is unique ID. However, I realize that if a person upgrades their OS or CPU or NICs, that this ID will be foobared. Is there a way to get a truly unique ID that will not change when hardware and OS changes?